﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using Entidades.Sistema.Produccion;
using Mapping.Sistema.Produccion;
using System.Web;


namespace Modelo.Sistema.Produccion
{
    public class CatalogoReceta
    {
        private List<Receta> Col_Receta;

        public CatalogoReceta()
        {
            List<Receta> recetas = (List<Receta>)HttpContext.Current.Session["Col_Receta"];
            if (recetas == null)
            {
                recetas = MappingReceta.ConsultarRecetas();
                HttpContext.Current.Session["Col_Receta"] = recetas;
            }
            Col_Receta = recetas;
        }

        public List<Receta> ListarRecetas()
        {
            return Col_Receta;
        }
        public Receta BuscarReceta(int idreceta)
        {
            return this.Col_Receta.Find(r => r.IdReceta == idreceta);
        }

        public int AgregarReceta(Receta oReceta)
        {
            Col_Receta.Add(oReceta);
            MappingReceta.AgregarReceta(oReceta);
            HttpContext.Current.Session["Col_Receta"] = Col_Receta;
            return oReceta.IdReceta;
        }

        public bool EliminarReceta(Receta oReceta)
        {
            Col_Receta.Remove(oReceta);
            MappingReceta.EliminarReceta(oReceta);
            HttpContext.Current.Session["Col_Receta"] = Col_Receta;
            return true;
        }
        public void ModificarReceta(Receta oReceta)
        {
            MappingReceta.ModificarReceta(oReceta);
            Col_Receta.RemoveAll(x => x.IdReceta == oReceta.IdReceta);
            Col_Receta.Add(oReceta);
            HttpContext.Current.Session["Col_Receta"] = Col_Receta;
        }

        public void RecetaCancelarEdicion(int id)
        {
            Receta oReceta = new Receta();
            oReceta = MappingReceta.ConsultarRecetaPorClave(id);
            Col_Receta.RemoveAll(x => x.IdReceta == id);
            Col_Receta.Add(oReceta);
            HttpContext.Current.Session["Col_Receta"] = Col_Receta;
        }

        public bool ValidarExistencia(Receta oReceta)
        {
            if (this.Col_Receta.Count(ped => ped.IdReceta == oReceta.IdReceta) == 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}
